Data Source

Source: Low-Income Energy Affordability Data, 2018 Update

About the Data

The US Department of Energy’s Low-Income Energy Affordability Data (LEAD) shows energy expenditures and energy burdens for households. This particular data, pulled from the 2018 Area Median Income data, also breaks households into income brackets. The income brackets are as a percentage of the area’s median income (AMI), where 100% indicates that household income is equivalent to the AMI. The income brackets in this data are 0-30%, 30-60%, 60-80%, 80-100%, and 100%+.

Variable Descriptions

glimpse(lead)
## Rows: 11
## Columns: 37
## $ FIP                      <dbl> 51001090100, 51001090200, 51001090300, 510010…
## $ county                   <chr> "Accomack", "Accomack", "Accomack", "Accomack…
## $ tract                    <dbl> 901, 902, 903, 904, 905, 906, 907, 908, 9301,…
## $ totalinc                 <dbl> 106773487, 129612461, 61442032, 120047897, 53…
## $ totalelep                <dbl> 6143964, 6615628, 2167116, 4461609, 2081862, …
## $ totalgas                 <dbl> 955390.4, 2182387.7, 709611.5, 1232994.8, 731…
## $ totalother               <dbl> 321101.4, 516012.6, 311333.1, 410918.6, 43256…
## $ averageburden            <dbl> 6.949718, 7.186059, 5.188728, 5.085905, 6.031…
## $ avg_hh_exp               <dbl> 4748.120, 3657.473, 3077.275, 3053.370, 3110.…
## $ lowburden                <dbl> 683.9598, 1096.5446, 440.7706, 1058.9761, 462…
## $ highburden               <dbl> 184.2558, 483.4608, 194.3784, 394.9814, 157.6…
## $ veryhighburden           <dbl> 341.3380, 634.9627, 208.8109, 400.2121, 180.2…
## $ extremelyhighburden      <dbl> 291.1445, 300.4294, 149.9686, 201.2892, 200.1…
## $ totalunits               <dbl> 1500.6981, 2515.3974, 993.9284, 2055.4588, 10…
## $ numberburdened           <dbl> 816.7382, 1418.8528, 553.1579, 996.4827, 538.…
## $ percentburdened          <dbl> 54.42389, 56.40671, 55.65369, 48.47982, 53.78…
## $ total_0_30               <dbl> 167.4056, 263.7055, 186.7433, 309.1969, 202.3…
## $ total_30_60              <dbl> 182.5965, 390.5556, 153.4957, 391.8459, 155.7…
## $ total_60_80              <dbl> 136.92566, 366.98719, 144.03470, 238.49260, 9…
## $ total_80_100             <dbl> 161.44690, 327.18867, 96.45968, 161.76691, 93…
## $ total_over_100           <dbl> 852.3234, 1166.9604, 413.1950, 954.1566, 453.…
## $ burdened_0_30            <dbl> 167.4056, 263.7055, 186.7433, 304.8229, 202.3…
## $ burdened_30_60           <dbl> 182.5965, 369.1552, 151.0950, 366.3732, 154.2…
## $ burdened_60_80           <dbl> 135.96044, 324.84586, 129.60361, 174.95300, 8…
## $ burdened_80_100          <dbl> 157.32611, 280.91965, 58.84603, 98.76576, 67.…
## $ burdened_over_100        <dbl> 173.44962, 180.22663, 26.86993, 51.56778, 28.…
## $ percent_0_30             <dbl> 100.00000, 100.00000, 100.00000, 98.58538, 10…
## $ percent_30_60            <dbl> 100.00000, 94.52052, 98.43594, 93.49933, 99.0…
## $ percent_60_80            <dbl> 99.29508, 88.51695, 89.98083, 73.35783, 88.88…
## $ percent_80_100           <dbl> 97.44759, 85.85861, 61.00583, 61.05437, 72.21…
## $ percent_over_100         <dbl> 20.350211, 15.444108, 6.502966, 5.404541, 6.3…
## $ total_owners             <dbl> 1160.5645, 1820.6219, 676.0099, 1180.9014, 64…
## $ total_renters            <dbl> 349.7431, 696.1272, 318.2414, 889.5201, 359.8…
## $ burdened_owners          <dbl> 529.8751, 949.5822, 317.8923, 478.9872, 286.2…
## $ burdened_renters         <dbl> 286.8631, 469.2706, 235.2655, 517.4956, 251.8…
## $ percent_burdened_owners  <dbl> 45.65667, 52.15702, 47.02481, 40.56115, 44.68…
## $ percent_burdened_renters <dbl> 82.02109, 67.41163, 73.92675, 58.17694, 69.98…
meta %>% 
  mutate(label = paste0(varname, ": ", about)) %>% 
  select(label) %>% 
  as.list()
## $label
##  [1] "FIP: 11-digit FIPS census tract code"                                                                                                                  
##  [2] "county: County name"                                                                                                                                   
##  [3] "tract: Census tract number"                                                                                                                            
##  [4] "totalinc: Aggregated income for the entire census tract"                                                                                               
##  [5] "totalelep: Aggregated electric expenditures for the entire census tract"                                                                               
##  [6] "totalgas: Aggregated gas expenditures for the entire census tract"                                                                                     
##  [7] "totalother: Aggregated other energy expenditures for the entire census tract"                                                                          
##  [8] "averageburden: Average household energy burden; energy burden is defined as the percent of income spent on energy"                                     
##  [9] "avg_hh_exp: Average household yearly expenditure on electric + gas + other energy"                                                                     
## [10] "lowburden: Number of households with less than 6% energy burden"                                                                                       
## [11] "highburden: Number of households with 6-10% energy burden"                                                                                             
## [12] "veryhighburden: Number of households with 10-20% energy burden"                                                                                        
## [13] "extremelyhighburden: Number of households with greater than 20% energy burden"                                                                         
## [14] "totalunits: Total number of housing units in the census tract"                                                                                         
## [15] "numberburdened: Burdened households are those that bear at least a 6% energy burden (fall in the high, very high, or extremely high burden categories)"
## [16] "percentburdened: Percent of households that are energy burdened (numberburdened/totalunits)"                                                           
## [17] "total_0_30: Number of households with incomes that are 0-30% of the Area Median Income"                                                                
## [18] "total_30_60: Number of households with incomes that are 30-60% of the Area Median Income"                                                              
## [19] "total_60_80: Number of households with incomes that are 60-80% of the Area Median Income"                                                              
## [20] "total_80_100: Number of households with incomes that are 80-100% of the Area Median Income"                                                            
## [21] "total_over_100: Number of households with incomes that are more than 100% of the Area Median Income"                                                   
## [22] "burdened_0_30: Number of households in the 0-30% AMI range that are energy burdened"                                                                   
## [23] "burdened_30_60: Number of households in the 30-60% AMI range that are energy burdened"                                                                 
## [24] "burdened_60_80: Number of households in the 60-80% AMI range that are energy burdened"                                                                 
## [25] "burdened_80_100: Number of households in the 80-100% AMI range that are energy burdened"                                                               
## [26] "burdened_over_100: Number of households in the 100%+ AMI range that are energy burdened"                                                               
## [27] "percent_0_30: Percent of households in the 0-30% AMI range that are energy burdened (burdened_0_30/total_0_30)"                                        
## [28] "percent_30_60: Percent of households in the 30-60% AMI range that are energy burdened (burdened_30_60/total_30_60)"                                    
## [29] "percent_60_80: Percent of households in the 60-80% AMI range that are energy burdened (burdened_60_80/total_60_80)"                                    
## [30] "percent_80_100: Percent of households in the 80-100% AMI range that are energy burdened (burdened_80_100/total_80_100)"                                
## [31] "percent_over_100: Percent of households in the 100%+ AMI range that are energy burdened (burdened_over_100/total_over_100)"                            
## [32] "total_owners: Total number of households that are owned in the census tract"                                                                           
## [33] "total_renters: Total number of households that are rented in the census tract"                                                                         
## [34] "burdened_owners: Number of owned households that are energy burdened"                                                                                  
## [35] "burdened_renters: Number of rented households that are energy burdened"                                                                                
## [36] "percent_burdened_owners: Percent of owned households that are energy burdened (burdened_owners/total_owners)"                                          
## [37] "percent_burdened_renters: Percent of rented households that are energy burdened (burdened_renters/total_renters)"

Summaries

Summary of all non-missing variables:

lead %>% select(-c(FIP:tract)) %>% 
  select(where(~is.numeric(.x) && !is.na(.x))) %>% 
  as.data.frame() %>% 
  stargazer(., type = "text", title = "Summary Statistics", digits = 0,
            summary.stat = c("mean", "sd", "min", "median", "max"))
## 
## Summary Statistics
## =================================================================================
## Statistic                   Mean     St. Dev.     Min       Median        Max    
## ---------------------------------------------------------------------------------
## totalinc                 99,792,683 26,921,352 53,813,976 106,773,487 129,612,461
## totalelep                3,984,222  1,430,539  2,081,862   3,807,970   6,615,628 
## totalgas                 1,098,016   430,572    709,611     955,390    2,182,388 
## totalother                404,038     87,880    307,947     399,768     544,453  
## averageburden                6          1          5           5           7     
## avg_hh_exp                 3,264       548       2,712       3,108       4,748   
## lowburden                   858        258        441         957        1,140   
## highburden                  261        104        158         234         483    
## veryhighburden              315        125        180         290         635    
## extremelyhighburden         222         53        143         232         300    
## totalunits                 1,656       455        994        1,788       2,515   
## numberburdened              798        249        538         775        1,419   
## percentburdened              48         6          39         48          56     
## total_0_30                  236         50        167         245         309    
## total_30_60                 240         85        153         197         392    
## total_60_80                 187         81         96         149         367    
## total_80_100                169         63         93         162         327    
## total_over_100              825        241        413         869        1,167   
## burdened_0_30               234         49        167         245         307    
## burdened_30_60              230         76        151         197         369    
## burdened_60_80              160         70         85         137         325    
## burdened_80_100             120         62         59         99          281    
## burdened_over_100            54         61         15         29          180    
## percent_0_30                 99         2          95         100         100    
## percent_30_60                97         3          92        96.3         100    
## percent_60_80                86         10         65         89          99     
## percent_80_100               69         13         57         64          97     
## percent_over_100             6          6          1           5          20     
## total_owners               1,130       337        641        1,161       1,821   
## total_renters               533        173        318         499         890    
## burdened_owners             472        179        286         461         950    
## burdened_renters            325         93        235         287         517    
## percent_burdened_owners      42         6          32         43          52     
## percent_burdened_renters     63         10         51         61          82     
## ---------------------------------------------------------------------------------

Visual Distributions

Visual distributions of the data, shown with histograms and scatterplots

Spatial Distributions

Maps to show the distribution of variables across spatial units

Average Energy Burden

pal <- colorNumeric("Blues", reverse = TRUE, domain = easternshapes$averageburden)
leaflet(easternshapes) %>%
  addProviderTiles("CartoDB.Positron") %>%
  addPolygons(data = easternshapes,
              fillColor = ~pal(averageburden),
              weight = 1,
              opacity = 1,
              color = "white",
              fillOpacity = 0.6,
              highlight = highlightOptions(weight = 2, fillOpacity = 0.8, bringToFront = T),
              popup = paste0("Tract Number: ", easternshapes$tract, "<br>",
                             "Avg. Burden: ", round(easternshapes$averageburden, 2))) %>%
  addLegend("bottomright", pal = pal, values = easternshapes$averageburden,
            title = "Average Energy Burden", opacity = 0.7)

Average Yearly Household Energy Expenditures

pal <- colorNumeric("Blues", reverse = TRUE, domain = easternshapes$avg_hh_exp)
leaflet(easternshapes) %>%
  addProviderTiles("CartoDB.Positron") %>%
  addPolygons(data = easternshapes,
              fillColor = ~pal(avg_hh_exp),
              weight = 1,
              opacity = 1,
              color = "white",
              fillOpacity = 0.6,
              highlight = highlightOptions(weight = 2, fillOpacity = 0.8, bringToFront = T),
              popup = paste0("Tract Number: ", easternshapes$tract, "<br>",
                             "Avg. Household Energy Expenditures: ", round(easternshapes$avg_hh_exp, 2))) %>%
  addLegend("bottomright", pal = pal, values = easternshapes$avg_hh_exp,
            title = "Average Yearly Household Energy Expenditures", opacity = 0.7)

Number of Energy Burdened Households

pal <- colorNumeric("Blues", reverse = TRUE, domain = easternshapes$numberburdened)
leaflet(easternshapes) %>%
  addProviderTiles("CartoDB.Positron") %>%
  addPolygons(data = easternshapes,
              fillColor = ~pal(numberburdened),
              weight = 1,
              opacity = 1,
              color = "white",
              fillOpacity = 0.6,
              highlight = highlightOptions(weight = 2, fillOpacity = 0.8, bringToFront = T),
              popup = paste0("Tract Number: ", easternshapes$tract, "<br>",
                             "Number Burdened: ", round(easternshapes$numberburdened, 2))) %>%
  addLegend("bottomright", pal = pal, values = easternshapes$numberburdened,
            title = "Number of Energy Burdened Households", opacity = 0.7)

Percent of Energy Burdened Households

pal <- colorNumeric("Blues", reverse = TRUE, domain = easternshapes$percentburdened)
leaflet(easternshapes) %>%
  addProviderTiles("CartoDB.Positron") %>%
  addPolygons(data = easternshapes,
              fillColor = ~pal(percentburdened),
              weight = 1,
              opacity = 1,
              color = "white",
              fillOpacity = 0.6,
              highlight = highlightOptions(weight = 2, fillOpacity = 0.8, bringToFront = T),
              popup = paste0("Tract Number: ", easternshapes$tract, "<br>",
                             "Pct. Burdened: ", round(easternshapes$percentburdened, 2), "<br>",
                             "Pct. Burdened - 0-30% AMI: ", round(easternshapes$percent_0_30, 2), "<br>",
                             "Pct. Burdened - 30-60% AMI: ", round(easternshapes$percent_30_60, 2), "<br>",
                             "Pct. Burdened - 60-80% AMI: ", round(easternshapes$percent_60_80, 2), "<br>",
                             "Pct. Burdened - 80-100% AMI: ", round(easternshapes$percent_80_100, 2), "<br>",
                             "Pct. Burdened - 100%+ AMI: ", round(easternshapes$percent_over_100, 2))) %>%
  addLegend("bottomright", pal = pal, values = easternshapes$percentburdened,
            title = "Percent of Energy Burdened Households", opacity = 0.7)

Percent of Energy Burdened Rented Households

pal <- colorNumeric("Blues", reverse = TRUE, domain = easternshapes$percent_burdened_renters)
leaflet(easternshapes) %>%
  addProviderTiles("CartoDB.Positron") %>%
  addPolygons(data = easternshapes,
              fillColor = ~pal(percent_burdened_renters),
              weight = 1,
              opacity = 1,
              color = "white",
              fillOpacity = 0.6,
              highlight = highlightOptions(weight = 2, fillOpacity = 0.8, bringToFront = T),
              popup = paste0("Tract Number: ", easternshapes$tract, "<br>",
                             "Pct. of Renters Burdened: ", round(easternshapes$percent_burdened_renters, 2))) %>%
  addLegend("bottomright", pal = pal, values = easternshapes$percent_burdened_renters,
            title = "Percent of Energy Burdened Rented Households", opacity = 0.7)

Percent of Energy Burdened Owned Households

pal <- colorNumeric("Blues", reverse = TRUE, domain = easternshapes$percent_burdened_owners)
leaflet(easternshapes) %>%
  addProviderTiles("CartoDB.Positron") %>%
  addPolygons(data = easternshapes,
              fillColor = ~pal(percent_burdened_owners),
              weight = 1,
              opacity = 1,
              color = "white",
              fillOpacity = 0.6,
              highlight = highlightOptions(weight = 2, fillOpacity = 0.8, bringToFront = T),
              popup = paste0("Tract Number: ", easternshapes$tract, "<br>",
                             "Pct. of Owners Burdened: ", round(easternshapes$percent_burdened_owners, 2))) %>%
  addLegend("bottomright", pal = pal, values = easternshapes$percent_burdened_owners,
            title = "Percent of Energy Burdened Owned Households", opacity = 0.7)

Important Notes

Census tracts 9801, 9802, 9901, and 9902 (all from Accomack County) do not appear in this data set. 9901 and 9902 contain only water. 9801 and 9802 contain land, but have a population of 0.